package smartgrid;

public class Constants {
	
	public static final String	TAG_SMARTGRID																		= "smartgrid";
	
	/**
	 * General
	 */
	public static final String	TAG_GENERAL																			= "general";
	
	public static final String	TAG_REPLICATIONS																= "replications";
	
	public static final String	TAG_ITERATIONS																	= "iterations";
	
	public static final String	TAG_SEEDS																				= "seeds";
	
	public static final String	TAG_SEED																				= "seed";
	
	/**
	 * Output
	 */
	public static final String	TAG_OUTPUT																			= "output";
	
	public static final String	TAG_OUTPUT_DIRECTORY														= "directory";
	
	public static final String	TAG_OUTPUT_APPEND																= "append";
	
	public static final String	TAG_OUTPUT_SEPARATOR														= "separator";
	
	public static final String	TAG_OUTPUT_TIME_TO_WRITE												= "timeToWrite";
	
	/**
	 * Filename
	 */
	public static final String	TAG_FILENAME																		= "filename";
	
	public static final String	TAG_FILENAME_PROSUMER														= "prosumer";
	
	public static final String	TAG_FILENAME_CONTRACT														= "contract";
	
	public static final String	TAG_FILENAME_PROVIDER														= "provider";
	
	public static final String	TAG_FILENAME_REGULATOR													= "regulator";
	
	/**
	 * Network
	 */
	public static final String	TAG_NETWORK																			= "network";
	
	/**
	 * Prosumers
	 */
	public static final String	TAG_PROSUMERS																		= "prosumers";
	
	public static final String	TAG_PROSUMER																		= "prosumer";
	
	public static final String	TAG_PROSUMER_TYPE																= "type";
	
	public static final String	TAG_PROSUMER_CLASSNAME													= "classname";
	
	public static final String	TAG_PROSUMER_QTY																= "quantity";
	
	public static final String	TAG_PROSUMER_INITIAL_SELF_INTEREST							= "selfInterest";
	
	public static final String	TAG_PROSUMER_MIN_CONSUME												= "minConsume";
	
	public static final String	TAG_PROSUMER_MAX_CONSUME												= "maxConsume";
	
	public static final String	TAG_PROSUMER_MIN_GENERATE												= "minGenerate";
	
	public static final String	TAG_PROSUMER_MAX_GENERATE												= "maxGenerate";
	
	public static final String	TAG_PROSUMER_CONSUME_VARIATION									= "consumeVariation";
	
	public static final String	TAG_PROSUMER_GENERATE_VARIATION									= "generateVariation";
	
	public static final String	TAG_PROSUMER_MIN_PRICE													= "minPrice";
	
	public static final String	TAG_PROSUMER_MAX_PRICE													= "maxPrice";
	
	/**
	 * DynamicSanction
	 */
	public static final String	TAG_PROSUMER_DS																	= "dsProsumer";
	
	public static final String	TAG_PROSUMER_DS_PUNISHMENT											= "punishment";
	
	public static final String	TAG_PROSUMER_DS_COST_PUNISH											= "costToPunish";
	
	public static final String	TAG_PROSUMER_DS_DELTA_PUNISHMENT								= "deltaPunishment";
	
	public static final String	TAG_PROSUMER_DS_NORM_ACTIVATE_NUM_MSG						= "normActivateNumMsg";
	
	public static final String	TAG_PROSUMER_DS_NORM_ACTIVATE_NUM_ACTION				= "normActivateNumAction";
	
	public static final String	TAG_PROSUMER_DS_NORM_ACTIVATE_SAL_THRESHOLD			= "normActivateSalThreshold";
	
	public static final String	TAG_PROSUMER_DS_TOLERANCE_TO_VIOLATION					= "toleranceToViolation";
	
	public static final String	TAG_PROSUMER_DS_NORM_ACTIVE											= "normActive";
	
	public static final String	TAG_PROSUMER_DS_INITIAL_NORM_SALIENCE						= "normSalience";
	
	public static final String	TAG_PROSUMER_DS_INDIVIDUAL_WEIGHT								= "individualWeight";
	
	public static final String	TAG_PROSUMER_DS_NORMATIVE_WEIGHT								= "normativeWeight";
	
	/**
	 * Social Sanction
	 */
	public static final String	TAG_PROSUMER_SOCIAL															= "socialProsumer";
	
	public static final String	TAG_PROSUMER_SOCIAL_COST_DENOUNCE								= "costToDenounce";
	
	public static final String	TAG_PROSUMER_SOCIAL_NORM_ACTIVATE_NUM_MSG				= "normActivateNumMsg";
	
	public static final String	TAG_PROSUMER_SOCIAL_NORM_ACTIVATE_NUM_ACTION		= "normActivateNumAction";
	
	public static final String	TAG_PROSUMER_SOCIAL_NORM_ACTIVATE_SAL_THRESHOLD	= "normActivateSalThreshold";
	
	public static final String	TAG_PROSUMER_SOCIAL_NORM_ACTIVE									= "normActive";
	
	public static final String	TAG_PROSUMER_SOCIAL_INITIAL_NORM_SALIENCE				= "normSalience";
	
	public static final String	TAG_PROSUMER_SOCIAL_INDIVIDUAL_WEIGHT						= "individualWeight";
	
	public static final String	TAG_PROSUMER_SOCIAL_NORMATIVE_WEIGHT						= "normativeWeight";
	
	public static final String	TAG_PROSUMER_SOCIAL_REPUTATION_WEIGHT						= "reputationWeight";
	
	public static final String	TAG_PROSUMER_SOCIAL_DEMAND_DISTANCE_WEIGHT			= "demandDW";
	
	public static final String	TAG_PROSUMER_SOCIAL_DEMAND_REPUTATION_WEIGHT		= "demandRW";
	
	public static final String	TAG_PROSUMER_SOCIAL_INITIAL_IMAGE_VALUE					= "imageValue";
	
	public static final String	TAG_PROSUMER_SOCIAL_INITIAL_REPUTATION_VALUE		= "reputationValue";
	
	public static final String	TAG_PROSUMER_SOCIAL_IMAGE_WEIGHT								= "imageWeight";
	
	public static final String	TAG_PROSUMER_SOCIAL_OSTRACIZE_THRESHOLD					= "ostracizeThreshold";
	
	public static final String	TAG_PROSUMER_SOCIAL_INFLUENCE_RADIUS						= "influenceRadius";
	
	public static final String	TAG_PROSUMER_SOCIAL_INFLUENCE_THRESHOLD					= "influenceThreshold";
	
	/**
	 * Broker
	 */
	public static final String	TAG_BROKER																			= "broker";
	
	public static final String	TAG_BROKER_CLASSNAME														= "classname";
	
	/**
	 * Provider
	 */
	public static final String	TAG_PROVIDER																		= "provider";
	
	public static final String	TAG_PROVIDER_CLASSNAME													= "classname";
	
	public static final String	TAG_PROVIDER_PURCHASE_PRICE											= "purchasePriceKWh";
	
	public static final String	TAG_PROVIDER_SELLING_PRICE											= "sellingPriceKWh";
	
	/**
	 * Regulator
	 */
	public static final String	TAG_REGULATOR																		= "regulator";
	
	public static final String	TAG_REGULATOR_CLASSNAME													= "classname";
	
	public static final String	TAG_REGULATOR_NUMBER_DENOUNCES_PUNISH						= "numberDenouncesPunish";
	
	public static final String	TAG_REGULATOR_PROBABILITY_PUNISH								= "probabilityPunish";
	
	public static final String	TAG_REGULATOR_PUNISHMENT												= "punishment";
	
	public static final String	TAG_REGULATOR_NUMBER_DENOUNCES_SUSPENSION				= "numberDenouncesSuspension";
	
	public static final String	TAG_REGULATOR_PROBABILITY_SUSPENSION						= "probabilitySuspension";
	
	public static final String	TAG_REGULATOR_PERIOD_SUSPENSION									= "periodSuspension";
	
	/**
	 * 
	 * Actions
	 * 
	 */
	public enum Action {
		ENERGY_TRADE;
	}
	
	/**
	 * 
	 * Norms
	 * 
	 */
	public enum Norm {
		ENERGY_SUPPLIER,
		ENERGY_BUYER;
	}
	
	/**
	 * 
	 * Roles
	 * 
	 */
	public enum Role {
		SUPPLIER,
		BUYER;
	}
}